"""
FastMCP集成演示脚本
演示如何使用FastMCP管理服务与现有系统集成
"""

import asyncio
import json
from src.tools.mcp_manager_tool import get_mcp_manager_tool
from src.services.mcp_fastmanager import (
    register_server, unregister_server, list_servers, 
    get_server_info, check_health, discover_tools
)


async def demo_fastmcp_integration():
    """演示FastMCP集成"""
    print("=== FastMCP集成演示 ===\n")
    
    # 1. 注册新服务器
    print("1. 注册新MCP服务器...")
    server_id = await register_server(
        name="demo_filesystem_server",
        url="http://localhost:8001",
        description="演示文件系统服务器",
        tags=["demo", "filesystem"]
    )
    print(f"   服务器注册成功，ID: {server_id}\n")
    
    # 2. 列出所有服务器
    print("2. 列出所有MCP服务器...")
    servers = await list_servers()
    print(f"   服务器列表: {json.dumps(servers, ensure_ascii=False, indent=2)}\n")
    
    # 3. 获取服务器信息
    print("3. 获取服务器详细信息...")
    server_info = await get_server_info(server_id)
    print(f"   服务器信息: {json.dumps(server_info, ensure_ascii=False, indent=2)}\n")
    
    # 4. 检查服务器健康状态
    print("4. 检查服务器健康状态...")
    health_result = await check_health(server_id)
    print(f"   健康检查结果: {json.dumps(health_result, ensure_ascii=False, indent=2)}\n")
    
    # 5. 演示LangChain工具使用
    print("5. 使用LangChain工具管理MCP服务器...")
    manager_tool = get_mcp_manager_tool()
    
    # 列出服务器
    result = await manager_tool._arun("list_servers")
    print(f"   LangChain工具列出服务器结果: {result}\n")
    
    # 检查健康状态
    result = await manager_tool._arun("check_health")
    print(f"   LangChain工具健康检查结果: {result}\n")
    
    # 6. 注销服务器
    print("6. 注销MCP服务器...")
    success = await unregister_server(server_id)
    print(f"   服务器注销{'成功' if success else '失败'}\n")
    
    print("=== 演示完成 ===")


if __name__ == "__main__":
    # 运行演示
    asyncio.run(demo_fastmcp_integration())